package com.cloudkinto.service.storage;

import com.cloudkinto.entity.StorageShelfDo;
import com.baomidou.mybatisplus.extension.service.IService;

import com.cloudkinto.common.web.PageResult;
import com.cloudkinto.common.web.SingleResult;
import com.cloudkinto.extentity.shelf.ShelfSortUpdateDto;
import com.cloudkinto.service.storage.vo.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  service接口
 * </p>
 * @author zhujiale
 * @since 2022-12-20
 */
public interface StorageShelfService extends IService<StorageShelfDo> {

    SingleResult addInit();

    Object add(StorageShelfAddReq req, Long userId, Long companyId);

    SingleResult updateInit(Long id);

    Object update(StorageShelfUpdateReq updateVo, Long userId,Long companyId);

    void updateSort(ShelfSortUpdateReq updateReq, Long userId);

    int delete(Long id, Long userId);

    Object detail(Long id);

    SingleResult pageInit();

    PageResult getListPage(Map<String, String> map);

    void printBarCodePdf(Long id, HttpServletResponse response);

    void printBarCodePdfOne(Long id, HttpServletResponse response);

    int updateStatus(UpdateShelfStatusReq req, Long userId);

    PickupPreviewRes getPickupPreview(Long id);

    PickupPreviewRes getPreviewConfig(StorageShelfDo et, List<ShelfSortUpdateDto> list);

    PickupPreviewRes getPreviewResNew(StorageShelfDo et, List<ShelfSortUpdateDto> list);

    PickupPreviewRes getPreviewRes(StorageShelfDo et, List<ShelfSortUpdateDto> list);

    void refreshOutVolResListRedis();

    StorageVolumePreviewRes storageVolumePreview(Long storageId);

    void setShowRuleColor(ShowRuleColorUpdateReq req, Long userId);

    void rackMessageNotice();

}
